home *** CD-ROM | disk | FTP | other *** search
/ Visual Basic Graphics Programming (2nd Edition) / Visual Basic Graphics Programming 2nd Edition.iso / Src / Ch11 / Bditch.frm (.txt) next >
Visual Basic Form  |  1999-06-12  |  4KB  |  129 lines

  1. VERSION 5.00
  2. Begin VB.Form frmBditch 
  3.    Caption         =   "Bditch"
  4.    ClientHeight    =   5310
  5.    ClientLeft      =   2175
  6.    ClientTop       =   645
  7.    ClientWidth     =   4830
  8.    LinkTopic       =   "Form1"
  9.    PaletteMode     =   1  'UseZOrder
  10.    ScaleHeight     =   5310
  11.    ScaleWidth      =   4830
  12.    Begin VB.TextBox txtDt 
  13.       Height          =   285
  14.       Left            =   2160
  15.       TabIndex        =   6
  16.       Text            =   "0.1"
  17.       Top             =   45
  18.       Width           =   615
  19.    End
  20.    Begin VB.TextBox txtTmin 
  21.       Height          =   285
  22.       Left            =   0
  23.       TabIndex        =   4
  24.       Text            =   "0"
  25.       Top             =   45
  26.       Width           =   615
  27.    End
  28.    Begin VB.CommandButton cmdGo 
  29.       Caption         =   "Go"
  30.       Default         =   -1  'True
  31.       Height          =   375
  32.       Left            =   4200
  33.       TabIndex        =   3
  34.       Top             =   0
  35.       Width           =   615
  36.    End
  37.    Begin VB.TextBox txtTmax 
  38.       Height          =   285
  39.       Left            =   1200
  40.       TabIndex        =   2
  41.       Text            =   "6.2832"
  42.       Top             =   45
  43.       Width           =   615
  44.    End
  45.    Begin VB.PictureBox picCanvas 
  46.       AutoRedraw      =   -1  'True
  47.       Height          =   4815
  48.       Left            =   0
  49.       ScaleHeight     =   4755
  50.       ScaleWidth      =   4755
  51.       TabIndex        =   0
  52.       Top             =   480
  53.       Width           =   4815
  54.    End
  55.    Begin VB.Label Label1 
  56.       Caption         =   "dt"
  57.       Height          =   255
  58.       Index           =   1
  59.       Left            =   1920
  60.       TabIndex        =   5
  61.       Top             =   60
  62.       Width           =   255
  63.    End
  64.    Begin VB.Label Label1 
  65.       Caption         =   "<= t <="
  66.       Height          =   255
  67.       Index           =   0
  68.       Left            =   645
  69.       TabIndex        =   1
  70.       Top             =   60
  71.       Width           =   495
  72.    End
  73. Attribute VB_Name = "frmBditch"
  74. Attribute VB_GlobalNameSpace = False
  75. Attribute VB_Creatable = False
  76. Attribute VB_PredeclaredId = True
  77. Attribute VB_Exposed = False
  78. Option Explicit
  79. ' Draw the curve on the indicated picture box.
  80. Private Sub DrawCurve(ByVal pic As PictureBox, ByVal start_t As Single, ByVal stop_t As Single, ByVal dt As Single)
  81. Dim cx As Single
  82. Dim cy As Single
  83. Dim t As Single
  84.     cx = pic.ScaleLeft + pic.ScaleWidth / 2
  85.     cy = pic.ScaleTop + pic.ScaleHeight / 2
  86.     pic.Cls
  87.     pic.CurrentX = cx + X(start_t)
  88.     pic.CurrentY = cy + Y(start_t)
  89.     t = start_t + dt
  90.     Do While t < stop_t
  91.         pic.Line -(cx + X(t), cy + Y(t))
  92.         t = t + dt
  93.     Loop
  94.     pic.Line -(cx + X(stop_t), cy + Y(stop_t))
  95. End Sub
  96. ' The parametric function Y(t).
  97. Private Function Y(ByVal t As Single) As Single
  98.     Y = 2000 * Sin(5 * t)
  99. End Function
  100. ' The parametric function X(t).
  101. Private Function X(ByVal t As Single) As Single
  102.     X = 2000 * Sin(4 * t)
  103. End Function
  104. Private Sub cmdGo_Click()
  105. Dim tmin As Single
  106. Dim tmax As Single
  107. Dim dt As Single
  108.     tmin = CSng(txtTmin.Text)
  109.     tmax = CSng(txtTmax.Text)
  110.     dt = CSng(txtDt.Text)
  111.     DrawCurve picCanvas, tmin, tmax, dt
  112. End Sub
  113. Private Sub Form_Load()
  114. Const PI = 3.14159265
  115.     txtTmin.Text = Format$(0, "0.00")
  116.     txtTmax.Text = Format$(2 * PI, "0.00")
  117.     txtDt.Text = "0.01"
  118. End Sub
  119. Private Sub Form_Resize()
  120. Dim lft As Single
  121. Dim hgt As Single
  122.     lft = txtDt.Left + txtDt.Width
  123.     If lft < ScaleWidth - cmdGo.Width Then lft = ScaleWidth - cmdGo.Width
  124.     cmdGo.Left = lft
  125.     hgt = ScaleHeight - picCanvas.Top
  126.     If hgt < 120 Then hgt = 120
  127.     picCanvas.Move 0, picCanvas.Top, ScaleWidth, hgt
  128. End Sub
  129.